package com.fcscs.cservice.gwt.client;

import java.util.Date;
import java.util.List;

import com.fcscs.core.common.SearchResultsContainer;
import com.fcscs.cservice.domain.model.InRoomOrderView;
import com.fcscs.cservice.domain.model.OrderView;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;

@RemoteServiceRelativePath("../gwt/inRoom")
public interface InRoomService extends RemoteService {
	
	OrderView createOrder(long orgId, long propId, OrderView order);
	
	int calculateOrder(long orgId, long propId, OrderView order); //change order content to calculated result and return leadTime;
	
	SearchResultsContainer<InRoomOrderView> findInRoomOrders(long orgId, long propId, Date startTime, Date endTime, int start, int numResults);
	
	SearchResultsContainer<InRoomOrderView> findInRoomOrders(long orgId, long propId, Date startTime, Date endTime, String firstName, String lastName,
			String status, Long categoryId, String roomNo, int start, int numResults); //TODO to be confirmed: an order should be placed under a category
	
	List<InRoomOrderView> updateInRoomOrderList(List<InRoomOrderView> orderList);
	
	SearchResultsContainer<InRoomOrderView> getInRoomOrderHistory(long guestProfileId, int start, int numResults);
	
	OrderView getOrderView(long id);
}
